{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import math\n",
    "import random\n",
    "from collections import namedtuple, deque\n",
    "\n",
    "import gym\n",
    "import numpy as np\n",
    "\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.optim as optim\n",
    "import torch.nn.functional as F\n",
    "import torch.autograd as autograd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from IPython.display import clear_output\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "USE_CUDA = torch.cuda.is_available()\n",
    "Variable = lambda *args, **kwargs: autograd.Variable(*args, **kwargs).cuda() if USE_CUDA else autograd.Variable(*args, **kwargs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "class StochasticMDP:\n",
    "    def __init__(self):\n",
    "        self.end           = False\n",
    "        self.current_state = 2\n",
    "        self.num_actions   = 2\n",
    "        self.num_states    = 6\n",
    "        self.p_right       = 0.5\n",
    "\n",
    "    def reset(self):\n",
    "        self.end = False\n",
    "        self.current_state = 2\n",
    "        state = np.zeros(self.num_states)\n",
    "        state[self.current_state - 1] = 1.\n",
    "        return state\n",
    "\n",
    "    def step(self, action):\n",
    "        if self.current_state != 1:\n",
    "            if action == 1:\n",
    "                if random.random() < self.p_right and self.current_state < self.num_states:\n",
    "                    self.current_state += 1\n",
    "                else:\n",
    "                    self.current_state -= 1\n",
    "                    \n",
    "            if action == 0:\n",
    "                self.current_state -= 1\n",
    "                \n",
    "            if self.current_state == self.num_states:\n",
    "                self.end = True\n",
    "        \n",
    "        state = np.zeros(self.num_states)\n",
    "        state[self.current_state - 1] = 1.\n",
    "        \n",
    "        if self.current_state == 1:\n",
    "            if self.end:\n",
    "                return state, 1.00, True, {}\n",
    "            else:\n",
    "                return state, 1.00/100.00, True, {}\n",
    "        else:\n",
    "            return state, 0.0, False, {}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "class ReplayBuffer(object):\n",
    "    def __init__(self, capacity):\n",
    "        self.capacity = capacity\n",
    "        self.buffer   = deque(maxlen=capacity)\n",
    "    \n",
    "    def push(self, state, action, reward, next_state, done):\n",
    "        state      = np.expand_dims(state, 0)\n",
    "        next_state = np.expand_dims(next_state, 0)\n",
    "        self.buffer.append((state, action, reward, next_state, done))\n",
    "    \n",
    "    def sample(self, batch_size):\n",
    "        state, action, reward, next_state, done = zip(*random.sample(self.buffer, batch_size))\n",
    "        return np.concatenate(state), action, reward, np.concatenate(next_state), done\n",
    "    \n",
    "    def __len__(self):\n",
    "        return len(self.buffer)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Net(nn.Module):\n",
    "    def __init__(self, num_inputs, num_outputs):\n",
    "        super(Net, self).__init__()\n",
    "        \n",
    "        self.layers = nn.Sequential(\n",
    "            nn.Linear(num_inputs, 256),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(256, num_outputs)\n",
    "        )\n",
    "    \n",
    "    def forward(self, x):\n",
    "        return self.layers(x)\n",
    "    \n",
    "    def act(self, state, epsilon):\n",
    "        if random.random() > epsilon:\n",
    "            state  = torch.FloatTensor(state).unsqueeze(0)\n",
    "            action = self.forward(Variable(state, volatile=True)).max(1)[1]\n",
    "            return action.data[0]\n",
    "        else:\n",
    "            return random.randrange(num_actions)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "env = StochasticMDP()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "num_goals    = env.num_states\n",
    "num_actions  = env.num_actions\n",
    "\n",
    "model        = Net(2*num_goals, num_actions)\n",
    "target_model = Net(2*num_goals, num_actions)\n",
    "\n",
    "meta_model        = Net(num_goals, num_goals)\n",
    "target_meta_model = Net(num_goals, num_goals)\n",
    "\n",
    "if USE_CUDA:\n",
    "    model             = model.cuda()\n",
    "    target_model      = target_model.cuda()\n",
    "    meta_model        = meta_model.cuda()\n",
    "    target_meta_model = target_meta_model.cuda()\n",
    "\n",
    "optimizer      = optim.Adam(model.parameters())\n",
    "meta_optimizer = optim.Adam(meta_model.parameters())\n",
    "\n",
    "replay_buffer      = ReplayBuffer(10000)\n",
    "meta_replay_buffer = ReplayBuffer(10000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "def to_onehot(x):\n",
    "    oh = np.zeros(6)\n",
    "    oh[x - 1] = 1.\n",
    "    return oh"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "def update(model, optimizer, replay_buffer, batch_size):\n",
    "    if batch_size > len(replay_buffer):\n",
    "        return\n",
    "    state, action, reward, next_state, done = replay_buffer.sample(batch_size)\n",
    "    \n",
    "    state      = Variable(torch.FloatTensor(state))\n",
    "    next_state = Variable(torch.FloatTensor(next_state), volatile=True)\n",
    "    action     = Variable(torch.LongTensor(action))\n",
    "    reward     = Variable(torch.FloatTensor(reward))\n",
    "    done       = Variable(torch.FloatTensor(done))\n",
    "    \n",
    "    q_value = model(state)\n",
    "    q_value = q_value.gather(1, action.unsqueeze(1)).squeeze(1)\n",
    "    \n",
    "    next_q_value     = model(next_state).max(1)[0]\n",
    "    expected_q_value = reward + 0.99 * next_q_value * (1 - done)\n",
    "   \n",
    "    loss = (q_value - Variable(expected_q_value.data)).pow(2).mean()\n",
    "    \n",
    "    optimizer.zero_grad()\n",
    "    loss.backward()\n",
    "    optimizer.step()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "epsilon_start = 1.0\n",
    "epsilon_final = 0.01\n",
    "epsilon_decay = 500\n",
    "\n",
    "epsilon_by_frame = lambda frame_idx: epsilon_final + (epsilon_start - epsilon_final) * math.exp(-1. * frame_idx / epsilon_decay)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABIsAAAE/CAYAAADG7EOqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4ZGd9J/rvW/sutVTqbvWi3t1tGy+AsYndDhAIOJdk\nyIQshCxPEhgCWW4mIQm5M7nJnUAmLAEGCLmEMAxJSFgScAJMbGOwMd1tG+MVL63uVne71YukVmmp\nfa93/jjnPXWq6lSpdlVJ38/z9GOrNp1SlUrnfM/v93uFlBJEREREREREREQAYFvvDSAiIiIiIiIi\nosHBsIiIiIiIiIiIiAwMi4iIiIiIiIiIyMCwiIiIiIiIiIiIDAyLiIiIiIiIiIjIwLCIiIiIiIiI\niIgMDIuIiIiIiIiIiMjAsIiIiIg2BSHEbwkhHhdCZIUQn6u67rVCiGkhREoI8aAQYo/pOiGE+IAQ\nYkn/9wEhhDBdv1e/T0p/jNdVPfZbhRAXhBBJIcS/CiHGTNe5hRCfFULEhBDzQojf6+GPgIiIiKgp\nDIuIiIhos7gC4H0APmu+UAgRBvBVAP8vgDEAjwP4kukm7wDwkwBuAnAjgJ8A8Oum678A4CkA4wD+\nK4B/EUJM6I99PYC/AfBLALYBSAH4a9N9/z8AhwDsAfAaAH8ohLir42dKRERE1AEhpVzvbSAiIiLq\nGyHE+wDsklL+iv71OwD8ipTydv1rP4AIgJdKKaeFEA8D+JyU8tP69b8G4B1SylcKIa4B8CyAsJQy\nrl//XQD/JKX8lBDivwPYK6V8q37dAQAnAYxLKeNCiCv69/6mfv2fAbhGSvmWPv04iIiIiGqwsoiI\niIg2u+sBPKO+kFImAczol9dcr/+/+bpzKiiqc735sc8CyAK4RgixBcBkg8cmIiIiWhcMi4iIiGiz\nCwCIVl0WAxCsc30MQECfW9Tqfc3XB/Svqx87CCIiIqJ1xLCIiIiINrsEgFDVZSMA4nWuHwGQkFov\nf6v3NV+f0L+ufuw4iIiIiNYRwyIiIiLa7J6HNrwagDGz6IB+ec31+v+br9svhAg2uN782AcAuACc\nllKuAJhr8NhERERE64JhEREREW0KQgiHEMIDwA7ALoTwCCEcAO4G8BIhxJv16/8UwDNSymn9rn8P\n4PeEEDuFEDsBvBvA5wBASnkawNMA/lR/vJ8CcAOAr+j3/UcAPyGEuFMPod4L4KumGUd/D+CPhRBb\nhBDXAvhP6rGJiIiI1gvDIiIiItos/hhAGsAfAfhF/f//WEq5CODNAP4cwAqAWwGYVyP7GwBfh7bq\n2bMAvqFfprwFwC36ff8CwE/rjwkp5fMA3gktNLoKwA/gN0z3/VMAZwFcAPAdAB+UUt7brSdMRERE\n1A6htdsTERERERERERGxsoiIiIiIiIiIiEwYFhERERERERERkaGpsEgIcZcQ4pQQYkYI8UcW179J\nCPEDIcTTQojHhRBHm70vERERERERERENjjVnFgkh7ABOA/hRAJcAfB/Az0spXzDdJgAgKaWUQogb\nAXxZSnmkmfsSEREREREREdHgaKay6FYAM1LKc1LKHIAvAniT+QZSyoQsp05+ALLZ+xIRERERERER\n0eBwNHGbnQAumr6+BOC26hsJIf4jtOVitwJ4Yyv3rRYOh+XevXub2DQiIiIiIiIiImrGE088EZFS\nTqx1u2bCoqZIKe8GcLcQ4ocBvBfA61q5vxDiHQDeAQBTU1N4/PHHu7VpRERERERERESbnhDiQjO3\na6YN7TKA3aavd+mXWZJSfhfAfiFEuJX7Sik/LaW8RUp5y8TEmiEXERERERERERH1QDNh0fcBHBJC\n7BNCuAC8BcDXzDcQQhwUQgj9/18GwA1gqZn7EhERERERERHR4FizDU1KWRBC/BaA+wDYAXxWSvm8\nEOKd+vWfAvBmAL8shMgDSAP4OX3gteV9e/RciIiIiIiIiIioQ6K8iNnguOWWWyRnFhERERERERER\ndY8Q4gkp5S1r3a6ZNjQiIiIiIiIiItokGBYREREREREREZGBYRERERERERERERkYFhERERERERER\nkYFhERERERERERERGRgWEREREREREdHAk1Li2JlFlEqNV3U/t5jA7FKqT1u1MTEsIiIiIiIiIqKB\n99zlGH7pfz6GR84tNbzdH33lWfzp157r01ZtTI713gAiIiIiIiIiorWspHIAgGg63/B20XQe2WKp\nH5u0YTEsIiIiIiIiIqKBl8wWAACZfLHh7TKFIgolhkWdYFhERERERERERAMvmdNCoky+cRCUyRch\nIPqxSRsWwyIiIiIiIiIiGnhNVxblSyiuMQSbGmNYREREREREREQDL5nTw6LCWmFREdlCCaWShM3G\nCqN2cDU0IiIiIiIiIhp45cqi+m1oUkpkC9r1qTUqkKg+hkVERERERERENPCSWS38yTYIgVRQBACJ\n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\nrcCo1+ELdw/gd37wOv7s+XFcu72xqOuPjs8CAPZ2aK8sAhKtaK9PLOJ9e9tx066Woq4lIiIiIiIi\noq2JYdE6+YVrO/HdkfP42vPjJV3f3mBGe4O5qGtu2NmMfzxxGV86MlDS+yQiIiIiIiKirUesZehy\npRw4cEAeP3682ssou2AkBufMUknXtjfUoc1eXFgUi0vM+8NFX0dEREREREREm48Q4oSU8sBq57Gy\naB3VGfW4psgWtLXQ6wSDIiIiIiIiIiIqCgdcExERERERERGRimERERERERERERGpGBYRERERERER\nEZFKU1gkhDgihBgTQjiFEA/neFwIIb6WfPznQogbtV5LREREREREREQbx6phkRBCD+AxAPcC2Afg\nw0KIfRmn3QugP/nnkwD+oohriYiIiIiIiIhog9BSWXQQgFNKeU5KGQbwBID7Ms65D8DfyIRXADQJ\nITo1XktERERERERERBuElrBoO4BLKW9fTh7Tco6WawEAQohPCiGOCyGOz87OalgWERERERERERGV\n24YZcC2l/KaU8oCU8kBbW1u1l0NEREREREREtCUZNJwzCaAr5e0dyWNazjFquJaIiIiIiIiIiDYI\nLZVFrwHoF0L0CCFMAD4E4KmMc54C8LHkrmi3AvBIKac0XktERERERERERBvEqpVFUsqoEOIzAJ4F\noAfwXSnl20KIB5OPfwPA0wDeD8AJIADgE4WuXe19njhxwi2EuFjix7SROAC4q70IItKEz1ei2sHn\nK1Ht4POVqHbw+bo17NJykpBSVnohW5YQ4riU8kC110FEq+Pzlah28PlKVDv4fCWqHXy+UqoNM+Ca\niIiIiIiIiIiqj2ERERERERERERGpGBZV1jervQAi0ozPV6LawecrUe3g85WodvD5SirOLCIiIiIi\nIiIiIhUri4iIiIiIiIiISMWwqEKEEEeEEGNCCKcQ4uFqr4eI0gkhLggh3hJCvCGEOJ481iKEeE4I\nMZ78b3O110m0FQkhviuEmBFCnEo5lvf5KYT4g+Tr7ZgQ4p7qrJpoa8rzfP0jIcRk8jX2DSHE+1Me\n4/OVqAqEEF1CiBeEEO8IId4WQnw2eZyvr5QTw6IKEELoATwG4F4A+wB8WAixr7qrIqIc7pRS7k/Z\nIvRhAM9LKfsBPJ98m4jW318DOJJxLOfzM/n6+iEAVyev+fPk6zARrY+/RvbzFQC+mnyN3S+lfBrg\n85WoyqIAviCl3AfgVgAPJZ+TfH2lnBgWVcZBAE4p5TkpZRjAEwDuq/KaiGh19wH4XvLv3wPwgSqu\nhWjLklK+CGA+43C+5+d9AJ6QUoaklOcBOJF4HSaidZDn+ZoPn69EVSKlnJJSnkz+3QfgNIDt4Osr\n5cGwqDK2A7iU8vbl5DEi2jgkgJ8IIU4IIT6ZPNYupZxK/t0FoL06SyOiHPI9P/maS7Qx/Y4Q4ufJ\nNjWlrYXPV6INQAjRDeAGAK+Cr6+UB8MiItqqhqSU+5FoF31ICPGu1AdlYqtIbhdJtAHx+Um04f0F\ngN0A9gOYAvBodZdDRAohRD2AfwLwOSmlN/Uxvr5SKoZFlTEJoCvl7R3JY0S0QUgpJ5P/nQHwJBJl\ntdNCiE4ASP53pnorJKIM+Z6ffM0l2mCklNNSypiUMg7gW1hpXeHzlaiKhBBGJIKix6WU/5w8zNdX\nyolhUWW8BqBfCNEjhDAhMRjsqSqviYiShBA2IYRd+TuAuwGcQuJ5+kDytAcA/Gt1VkhEOeR7fj4F\n4ENCCLMQogdAP4BjVVgfESUpP3gm/TISr7EAn69EVSOEEAC+A+C0lPJ/pzzE11fKyVDtBWxGUsqo\nEOIzAJ4FoAfwXSnl21VeFhGtaAfwZOI1EwYA35dSPiOEeA3A3wshfhPARQD3V3GNRFuWEOIHAO4A\n4BBCXAbwXwH8CXI8P6WUbwsh/h7AO0js9PKQlDJWlYUTbUF5nq93CCH2I9HOcgHApwA+X4mq7DCA\njwJ4SwjxRvLYH4Kvr5SHSLQlEhERERERERERsQ2NiIiIiIiIiIhSMCwiIiIiIiIiIiIVwyIiIiIi\nIiIiIlIxLCIiIiIiIiIiIhXDIiIiIiIiIiIiUjEsIiIiIiIiIiIiFcMiIiIiIiIiIiJSMSwiIiIi\nIiIiIiLV/wdFDcTqqW9bnwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f72647ec110>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_frames = 100000\n",
    "frame_idx  = 1\n",
    "\n",
    "state = env.reset()\n",
    "done = False\n",
    "all_rewards = []\n",
    "episode_reward = 0\n",
    "\n",
    "while frame_idx < num_frames:\n",
    "    goal = meta_model.act(state, epsilon_by_frame(frame_idx))\n",
    "    onehot_goal  = to_onehot(goal)\n",
    "    \n",
    "    meta_state = state\n",
    "    extrinsic_reward = 0\n",
    "    \n",
    "    while not done and goal != np.argmax(state):\n",
    "        goal_state  = np.concatenate([state, onehot_goal])\n",
    "        action = model.act(goal_state, epsilon_by_frame(frame_idx))\n",
    "        next_state, reward, done, _ = env.step(action)\n",
    "\n",
    "        episode_reward   += reward\n",
    "        extrinsic_reward += reward\n",
    "        intrinsic_reward = 1.0 if goal == np.argmax(next_state) else 0.0\n",
    "\n",
    "        replay_buffer.push(goal_state, action, intrinsic_reward, np.concatenate([next_state, onehot_goal]), done)\n",
    "        state = next_state\n",
    "        \n",
    "        update(model, optimizer, replay_buffer, 32)\n",
    "        update(meta_model, meta_optimizer, meta_replay_buffer, 32)\n",
    "        frame_idx += 1\n",
    "        \n",
    "        if frame_idx % 1000 == 0:\n",
    "            clear_output(True)\n",
    "            n = 100 #mean reward of last 100 episodes\n",
    "            plt.figure(figsize=(20,5))\n",
    "            plt.title(frame_idx)\n",
    "            plt.plot([np.mean(all_rewards[i:i + n]) for i in range(0, len(all_rewards), n)])\n",
    "            plt.show()\n",
    "\n",
    "    meta_replay_buffer.push(meta_state, goal, extrinsic_reward, state, done)\n",
    "        \n",
    "    if done:\n",
    "        state = env.reset()\n",
    "        done  = False\n",
    "        all_rewards.append(episode_reward)\n",
    "        episode_reward = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
